문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 Swift(프로그래밍 언어) (문단 편집) == 문제점 == Objective-C에 비해 문제가 있었는데 초기 3년 동안에 엄청난 속도로 업데이트를 하면서 언어동작, API가 계속 바뀌었다. 그리고 이에 따른 고생은 전부 프로그래머의 몫이다. Swift 2 기반으로 코드를 다 짜 놓았는데 Swift 3.0이 배포되며 코드가 싹 다 바뀌었고, 4.0에서 또 바뀌어 버려서 코드를 하나하나 수정해 주어야하는 일이 발생한 것. 대표적인 문제로 Swift 3.0에 오면서 조금만 큰 프로젝트를 개발하다 보면 Code Completion 기능은 먹통이 된다. 이 부분에 대해서 Apple은 Swift 4 또는 4.2[* 2018년 7월 기준, 아직 개발중이다. macOS Mojave 및 Xcode 10과 함께 배포될 것으로 보인다.]로 마이그레이션할 수 있도록 가이드를 제공하고 있다. [[https://swift.org/migration-guide-swift4/|Migration to Swift 4]] [[https://swift.org/migration-guide-swift4.2/|Migration to Swift 4.2]] [[LLVM]]/[[Clang]]의 아름다운 실시간 오류 검출 기능은 [[Xcode]]의 컨디션에 따라서 나왔다 말았다 한다. 이미 Apple 개발자 포럼에는 이와 관련된 문제가 많이 보고되고 있다. * 컴파일 속도 Objective-C에 비해서 빌드 속도가 현저히 느려졌다. 빌드 타임에 작성된 코드를 Swift로 변경하고 다시 그걸 컴파일하는 듯한 속도감을 보인다. * Xcode의 전반적인 반응 속도 Xcode를 사용하면서 Swift 3.0으로 올리고 나서 CPU 사용을 계속적으로 full로 사용하여 전반적인 동작이 느려지는 문제가 나왔다. Objective-C에서 나온다는 보고는 아직 없다. [[https://forums.developer.apple.com/thread/50593|#]] * 문자열 조작 문자열 조작이 무지하게 불편하다. 유니코드 때문에 실제로 글자 1자가 일정한 바이트 수가 아닌건 이해가 가지만 이 불편함을 좀 감출 문법적 설탕도 없다. 예를 들어서 어떤 문자열의 인덱스 범위 {{{[4, 8)}}}에 해당하는 부분 문자열을 짤라오고 싶다면 다음과 같은 걸 해야한다.[* 여러번의 문자열 조작이 필요한 경우 String 클래스 extension으로 인덱스 범위를 잘라내는 함수를 추가하여 사용하는것이 좋다.] {{{#!syntax objectivec let text = "The Swift Programming Language" let subText = text[text.index(text.startIndex, offsetBy: 4)..저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기